package com.Threecharacters.inherit_.Super;

public class SuperDetail {
    public static void main(String[] args) {
        //1.调用父类的构造器的好处
        // （分工明确，父类属性由父类初始化，子类属性由子类初始化
        //public class Super1 {
        //    public static void main(String[] args) {
        //        B b = new B(1);
        //        //B b = new B();
        //        //b.say();
        //    }
        //}

        //2.当子类中有和父类中的成员（属性和方法）重名时，
        // 为了访问父类成员，必须通过super。如果没有重名
        //使用super,this，直接访问是一样的效果

        //在B中创建如下方法
        //public void f1(){
        //    System.out.println(super.n1);
        //}

        //然后在main类中调用b.f1();

        //使用super,this，直接访问是一样的效果：

        //public void f1(){
        //        System.out.println(super.n1);//super访问
        //        this.n1 = super.n1;
        //        System.out.println(this.n1);//this访问
        //    }
        //
        //在main类中直接访问
        //System.out.println(b.n1);//直接访问

        //3.super的访问不限于直接父类，如果爷爷类和本类中有同名的成员
        //也可以使用super类去访问爷爷类成员；如果多个基类中都有同名的成员
        //使用super访问遵循就近原则 A->B->C


    }
}




























